const http = require("http");
const url = require("url");
const server = http.createServer((req, res) => {
  // 默认将tcp的socket 进行了封装  socket.on('data')  socket.write('aaa')
  // 1------
  let requestMethod = req.method; // 大写的
  let requestUrl = req.url;
  let { pathname, query } = url.parse(requestUrl, true); // url的一个完整的组成，按照组成解析成对象

  // https://username:password@www.baidu.com:8080/pathname?a=1&b=2#abc
  let requestVersion = req.httpVersion;
  // 2------

  let requestHeader = req.headers; // header 全部变为小写的

  // 3------
  const arr = [];
  req.on("data", function (chunk) {
    // post请求采用请求体
    arr.push(chunk); // 只要有请求体 就会触发data事件
  });
  req.on("end", function () {
    // end一定会触发
    // push(null)
    console.log(Buffer.concat(arr).toString(), "end");
  });

  // 响应行 响应头 响应体
  res.statusCode = 200; // 200ok
  // res.statusMessage = "not allowed";
  res.setHeader("a", "1");
  // res.write("ok");
  // res.write("ok");
  res.end("ok");
});

server.listen(3000, function () {
  console.log("server start 3000");
});
